package moc.tds;

import moc.gc.Emplacement;
import moc.type.DTYPE;

/**
 * Cette classe décrit une variable locale : adresse et type
 * 
 * @author marcel
 * 
 */
public class INFOVAR implements INFO {
	/**
	 * Le type de la variable
	 */
	protected DTYPE type;

	public DTYPE getType() {
		return type;
	}

	/**
	 * Represnete un emplacement memoire : depend de la machine
	 * 
	 */
	protected Emplacement empl; 
	public boolean isAttribute() {
		return isAttribute;
	}

	public void setAttribute(boolean isAttribute) {
		this.isAttribute = isAttribute;
	}

	private boolean isAttribute ;

	public INFOVAR(DTYPE type, Emplacement empl, boolean isAttribute) {
		super();
		this.type = type;
		this.empl = empl;
		this.isAttribute = isAttribute;

	}

	public Emplacement getEmpl() {
		return empl;
	}

	public int getTaille() {
		return this.getType().getTaille();
	}

	/**
	 * Une variable a un type et un emplacement pour sa valeur
	 * @param t
	 * @param e
	 */
	public INFOVAR(DTYPE t, Emplacement e) {
		type = t;
		empl = e;
		isAttribute = false ;
	}
	public INFOVAR(DTYPE t, int e) {
		type = t;
		dep = e;
	}
	int dep ;

	@Override
	public String toString() {
		return "INFOVAR [type=" + type.toString() + ", empl=" + empl + "]";
	}

	public int getDep() {
		// TODO Auto-generated method stub
		return dep;
	}

}
